package pers.xiaojun.boot.module.system.dao.mapper.dept;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import pers.xiaojun.boot.module.system.dao.entity.dept.DeptDO;

import java.util.List;

/**
 * 部门数据访问层
 *
 * @author xiaojun
 * @since 2025-11-01
 */
@Mapper
public interface DeptMapper extends BaseMapper<DeptDO> {

    /**
     * 根据部门名称和上级部门Id获取部门
     *
     * @param deptName 部门名称
     * @param parentId 上级部门Id
     * @return 部门
     */
    default DeptDO selectByNameAndParentId(String deptName, Long parentId) {
        return selectOne(new LambdaQueryWrapper<DeptDO>()
                .eq(DeptDO::getName, deptName)
                .eq(DeptDO::getParentId, parentId)
        );
    }

    /**
     * 获取上级部门Id获取部门列表
     *
     * @param parentId 上级部门Id
     * @return 部门列表
     */
    default List<DeptDO> selectByParentId(Long parentId) {
        return selectList(new LambdaQueryWrapper<DeptDO>()
                .eq(DeptDO::getParentId, parentId)
        );
    }

}
